package com.entmanage.base.collegeco.mapper;

import java.util.List;

import com.entmanage.base.collegeco.domain.*;

/**
 * 实习生信息Mapper接口
 * 
 * @author lsq
 * @date 2025-07-31
 */
public interface CollegecoInternMapper
{
    /**
     * 查询实习生信息
     * 
     * @param internId 实习生信息主键
     * @return 实习生信息
     */
    public CollegecoIntern selectHrmInternByInternId(Long internId);

    /**
     * 查询实习生信息列表
     * 
     * @param hrmIntern 实习生信息
     * @return 实习生信息集合
     */
    public List<CollegecoIntern> selectHrmInternList(CollegecoIntern hrmIntern);

    /**
     * 新增实习生信息
     * 
     * @param hrmIntern 实习生信息
     * @return 结果
     */
    public int insertHrmIntern(CollegecoIntern hrmIntern);

    /**
     * 修改实习生信息
     * 
     * @param hrmIntern 实习生信息
     * @return 结果
     */
    public int updateHrmIntern(CollegecoIntern hrmIntern);

    /**
     * 删除实习生信息
     * 
     * @param internId 实习生信息主键
     * @return 结果
     */
    public int deleteHrmInternByInternId(Long internId);

    /**
     * 批量删除实习生信息
     * 
     * @param internIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHrmInternByInternIds(Long[] internIds);

    /**
     * 批量删除实习生任务书
     * 
     * @param internIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHrmInternTaskByInternIds(Long[] internIds);
    
    /**
     * 批量新增实习生任务书
     * 
     * @param hrmInternTaskList 实习生任务书列表
     * @return 结果
     */
    public int batchHrmInternTask(List<CollegecoInternTask> hrmInternTaskList);
    

    /**
     * 通过实习生信息主键删除实习生任务书信息
     * 
     * @param internId 实习生信息ID
     * @return 结果
     */
    public int deleteHrmInternTaskByInternId(Long internId);

    /**
     * 批量删除实习生成绩鉴定主
     *
     * @param internIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHrmInternEvaluationByInternIds(Long[] internIds);

    /**
     * 批量新增实习生成绩鉴定主
     *
     * @param hrmInternEvaluationList 实习生成绩鉴定主列表
     * @return 结果
     */
    public int batchHrmInternEvaluation(List<CollegecoInternEvaluation> hrmInternEvaluationList);


    /**
     * 通过实习生信息主键删除实习生成绩鉴定主信息
     *
     * @param internId 实习生信息ID
     * @return 结果
     */
    public int deleteHrmInternEvaluationByInternId(Long internId);

    /**
     * 批量删除实习报告
     *
     * @param internIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHrmInternReportByInternIds(Long[] internIds);

    /**
     * 批量新增实习报告
     *
     * @param hrmInternReportList 实习报告列表
     * @return 结果
     */
    public int batchHrmInternReport(List<CollegecoInternReport> hrmInternReportList);


    /**
     * 通过实习生信息主键删除实习报告信息
     *
     * @param internId 实习生信息ID
     * @return 结果
     */
    public int deleteHrmInternReportByInternId(Long internId);

    /**
     * 批量删除实习周报（每周提交一次）
     *
     * @param internIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHrmInternWeeklyLogByInternIds(Long[] internIds);

    /**
     * 批量新增实习周报（每周提交一次）
     *
     * @param hrmInternWeeklyLogList 实习周报（每周提交一次）列表
     * @return 结果
     */
    public int batchHrmInternWeeklyLog(List<CollegecoInternWeeklyLog> hrmInternWeeklyLogList);


    /**
     * 通过实习生信息主键删除实习周报（每周提交一次）信息
     *
     * @param internId 实习生信息ID
     * @return 结果
     */
    public int deleteHrmInternWeeklyLogByInternId(Long internId);
}
